home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 4 / Gold Medal Software - Volume 4 (Gold Medal) (1994).iso / os2 / common.arj / CMNDEFS.H < prev    next >
C/C++ Source or Header  |  1994-08-06  |  18KB  |  509 lines

  1. #ifndef CMNDEFS_INCLUDED
  2. #define CMNDEFS_INCLUDED
  3.  
  4. #pragma pack(1)
  5.  
  6. #define CMNLIB_MAJVER            1
  7. #define CMNLIB_MINVER            5
  8. #define CMNLIB_REVVER            0
  9.  
  10. #define QH_ERROR                 (USHORT)0
  11. #define QH_HCCCONNECT            (USHORT)1
  12. #define QH_HCFSEARCH             (USHORT)2
  13. #define QH_HCLLIST               (USHORT)3
  14. #define QH_HCMMEM                (USHORT)4
  15. #define QH_HCOOBJECT             (USHORT)5
  16. #define QH_HCSSET                (USHORT)6
  17. #define QH_HCSSIGNAL             (USHORT)7
  18. #define QH_HCSPLAYGROUND         (USHORT)8
  19. #define QH_HCSSPRITE             (USHORT)9
  20.  
  21. #ifdef INCL_CMNBUF
  22. //-------------------------------------------------------------------------
  23. // Buffer routines
  24. //-------------------------------------------------------------------------
  25. #endif
  26.  
  27. #ifdef INCL_CMNCOM
  28. //-------------------------------------------------------------------------
  29. // Communication routines
  30. //-------------------------------------------------------------------------
  31.  
  32. typedef LONG COMERROR;
  33.  
  34. #define COM_ERR_NOERROR          (COMERROR)0
  35. #define COM_ERR_ERROR            (COMERROR)-1
  36. #define COM_ERR_NOTIMPLEMENTED   (COMERROR)-2
  37. #define COM_ERR_NOMEMORY         (COMERROR)1
  38. #define COM_ERR_INITFAILED       (COMERROR)2
  39. #define COM_ERR_BADHANDLE        (COMERROR)3
  40. #define COM_ERR_BADARGUMENT      (COMERROR)4
  41. #define COM_ERR_NOCONNECTION     (COMERROR)5
  42. #define COM_ERR_NOTSERVER        (COMERROR)6
  43. #define COM_ERR_TIMEOUT          (COMERROR)7
  44. #define COM_ERR_READFAILED       (COMERROR)8
  45. #define COM_ERR_WRITEFAILED      (COMERROR)9
  46. #define COM_ERR_BADDATA          (COMERROR)10
  47. #define COM_ERR_BADACK           (COMERROR)11
  48. #define COM_ERR_NONEFREE         (COMERROR)12
  49. #define COM_ERR_BADCONTROL       (COMERROR)13
  50. #define COM_ERR_BUFFERTOOLARGE   (COMERROR)14
  51. #define COM_ERR_CC_CLOSE         (COMERROR)32
  52. #define COM_ERR_CC_RESET         (COMERROR)33
  53.  
  54. #define MAX_REMOTENAME           256
  55. #define MAX_CONNECTNAME          256
  56.  
  57. #define CCI_TYPE_CLIENT          (USHORT)0x0001
  58. #define CCI_TYPE_SERVER          (USHORT)0x0002
  59. #define CCI_TYPE_SERVERCONNECT   (USHORT)0x0004
  60. #define CCI_TYPE_CLIENTSERVER    ((CCI_TYPE_CLIENT)|(CCI_TYPE_SERVER))
  61. #define CCI_ATTR_NOACKS          (USHORT)0x0008
  62.  
  63. //-------------------------------------------------------------------------
  64. // CCI_ATTR_NOTIMEOUT is used for the lTimeout field of the CCOPENINFO
  65. // structure (CmnComOpenConnection) and the CCCONNECTINFO structure
  66. // (CmnSetHandleInfo)
  67. //-------------------------------------------------------------------------
  68. #define CCI_ATTR_NOTIMEOUT       (USHORT)0
  69.  
  70. typedef struct _CCOPENINFO {
  71.    CHAR achMachine[MAX_CONNECTNAME+1];
  72.    CHAR achConnect[MAX_CONNECTNAME+1];
  73.    USHORT usAttr;
  74.    LONG lTimeout;
  75. } CCOPENINFO, FAR *PCCOPENINFO;
  76.  
  77. typedef struct _CCCONNECTINFO {
  78.    CHAR achConnect[MAX_CONNECTNAME+1];
  79.    USHORT usAttr;
  80.    ULONG ulSzData;
  81.    LONG lTimeout;
  82. } CCCONNECTINFO, FAR *PCCCONNECTINFO;
  83.  
  84. #define CSC_CLOSE                0x00000001L
  85. #define CSC_RESET                0x00000002L
  86.  
  87. typedef LHANDLE HCCCONNECT;
  88. typedef HCCCONNECT FAR *PHCCCONNECT;
  89. #endif
  90.  
  91. #ifdef INCL_CMNDBG
  92. //-------------------------------------------------------------------------
  93. // Debugging routines
  94. //-------------------------------------------------------------------------
  95.  
  96. #define DWT_TYPE_NAME            (USHORT)0
  97. #define DWT_TYPE_FILE            (USHORT)1
  98.  
  99. #define DWT_ERROR                (SHORT)-1
  100. #endif
  101.  
  102. #ifdef INCL_CMNFIL
  103. //-------------------------------------------------------------------------
  104. // File routines
  105. //-------------------------------------------------------------------------
  106.  
  107. //-------------------------------------------------------------------------
  108. // Note that the FCS_ATTR_* constants are equal to the FILE_* constants
  109. // (defined in <bsedos.h>) shifted left 1 bit, with the exception of
  110. // FCS_ATTR_NORMAL, which is 1.
  111. //
  112. // This allows us to specify, for example, that we want read-only files
  113. // but *not* normal files.  This makes the underlying code a bit more
  114. // complex, but not so complex that the extra effort outweighs the
  115. // advantages gained.
  116. //-------------------------------------------------------------------------
  117. #define FCS_ATTR_NORMAL          0x00000001L
  118. #define FCS_ATTR_READONLY        0x00000002L
  119. #define FCS_ATTR_HIDDEN          0x00000004L
  120. #define FCS_ATTR_SYSTEM          0x00000008L
  121. #define FCS_ATTR_DIRECTORY       0x00000020L
  122. #define FCS_ATTR_ARCHIVED        0x00000040L
  123.  
  124. #define FCS_ATTR_AND             0x00000000L
  125. #define FCS_ATTR_OR              0x01000000L
  126.  
  127. #define FSF_NOFILES              0xFFFFFFFFL
  128. #define FSF_ERROR                0xFFFFFFFEL
  129.  
  130. #define FEA_TYPE                 (PCHAR)0xFFFFFFF0L
  131. #define FEA_KEYPHRASES           (PCHAR)0xFFFFFFF1L
  132. #define FEA_SUBJECT              (PCHAR)0xFFFFFFF2L
  133. #define FEA_COMMENTS             (PCHAR)0xFFFFFFF3L
  134. #define FEA_HISTORY              (PCHAR)0xFFFFFFF4L
  135. #define FEA_VERSION              (PCHAR)0xFFFFFFF5L
  136. #define FEA_ICON                 (PCHAR)0xFFFFFFF6L
  137. #define FEA_ASSOCTABLE           (PCHAR)0xFFFFFFF7L
  138. #define FEA_HPFSNAME             (PCHAR)0xFFFFFFF8L
  139.  
  140. typedef LHANDLE HCFSEARCH;
  141. typedef HCFSEARCH FAR *PHCFSEARCH;
  142.  
  143. //-------------------------------------------------------------------------
  144. // FCD_TYPE_*   - CmnFilCopyDiskette() notification types
  145. //-------------------------------------------------------------------------
  146. #define FCD_TYPE_PROGRESS        0L
  147. #define FCD_TYPE_MESSAGE         1L
  148. #define FCD_TYPE_ERROR           2L
  149.  
  150. //-------------------------------------------------------------------------
  151. // FCD_MSG_*    - CmnFilCopyDiskette() messages
  152. //-------------------------------------------------------------------------
  153. #define FCD_MSG_WANTSRCDISK      0L
  154. #define FCD_MSG_WANTDESTDISK     1L
  155. #define FCD_MSG_WANTFORMATDISK   2L
  156. #define FCD_MSG_BEGINREAD        3L
  157. #define FCD_MSG_ENDREAD          4L
  158. #define FCD_MSG_BEGINWRITE       5L
  159. #define FCD_MSG_ENDWRITE         6L
  160. #define FCD_MSG_BEGINFORMAT      7L
  161. #define FCD_MSG_ENDFORMAT        8L
  162. #define FCD_MSG_BEGINVERIFY      9L
  163. #define FCD_MSG_ENDVERIFY        10L
  164. #define FCD_MSG_VALIDATESRCDISK  11L
  165. #define FCD_MSG_WRITEPROTECTED   12L
  166. #define FCD_MSG_SIZEMISMATCH     13L
  167. #define FCD_MSG_UNFORMATTED      14L
  168.  
  169. //-------------------------------------------------------------------------
  170. // FCD_MSG_*    - CmnFilCopyDiskette() errors
  171. //-------------------------------------------------------------------------
  172. #define FCD_ERR_SRCDRVINVALID    0L
  173. #define FCD_ERR_DESTDRVINVALID   1L
  174. #define FCD_ERR_NOMEMORY         2L
  175. #define FCD_ERR_OPENFAILED       3L
  176. #define FCD_ERR_CLOSEFAILED      4L
  177. #define FCD_ERR_READFAILED       5L
  178. #define FCD_ERR_WRITEFAILED      6L
  179. #define FCD_ERR_FORMATFAILED     7L
  180. #define FCD_ERR_VERIFYFAILED     8L
  181. #define FCD_ERR_LOCKFAILED       9L
  182. #define FCD_ERR_UNLOCKFAILED     10L
  183. #define FCD_ERR_ABORTED          99L
  184.  
  185. //-------------------------------------------------------------------------
  186. // PFNDISKIO            - feedback function prototype
  187. //-------------------------------------------------------------------------
  188. typedef BOOL (* EXPENTRY PFNDISKIO)(ULONG,ULONG,PVOID);
  189.  
  190. //-------------------------------------------------------------------------
  191. // CFFI_SECTOR_*        - sector size constants for CmnFilFormatDiskette()
  192. //-------------------------------------------------------------------------
  193. #define CFFI_SECTOR_128B         0
  194. #define CFFI_SECTOR_256B         1
  195. #define CFFI_SECTOR_512B         2
  196. #define CFFI_SECTOR_1024B        3
  197.  
  198. typedef struct _CFFORMATINFO {
  199.    ULONG ulSzStruct;
  200.    ULONG ulNumTracks;
  201.    ULONG ulNumSectors;
  202.    ULONG ulSzSector;
  203. } CFFORMATINFO, *PCFFORMATINFO;
  204.  
  205. //-------------------------------------------------------------------------
  206. // Options for CmnFilCopyDiskette()
  207. //
  208. // FCD_OPT_WANTFORMATTED        - if set, CmnFilCopyDiskette() will fail
  209. //                                if the destination diskette is unformatted.
  210. //-------------------------------------------------------------------------
  211. #define FCD_OPT_WANTFORMATTED    0x00000001L
  212. #endif                           // #ifdef INCL_CMNFIL
  213.  
  214. #ifdef INCL_CMNLST
  215. //-------------------------------------------------------------------------
  216. // Link-list routines
  217. //-------------------------------------------------------------------------
  218.  
  219. #define LAR_TAIL                 (PFNRECCOMP)0
  220. #define LAR_HEAD                 (PFNRECCOMP)1
  221.  
  222. #define LAUR_ERROR               0
  223. #define LAUR_EXISTS              1
  224. #define LAUR_NOERROR             2
  225.  
  226. #define LQRC_ERROR               -1
  227.  
  228. #define LQR_PREVIOUS             0
  229. #define LQR_NEXT                 1
  230.  
  231. typedef struct _CLLISTINFO {
  232.    USHORT usSzRecord;
  233.    USHORT usNumRecords;
  234.    PVOID pvHead;
  235.    PVOID pvTail;
  236. } CLLISTINFO, FAR *PCLLISTINFO;
  237.  
  238. typedef LHANDLE HCLLIST;
  239. typedef HCLLIST FAR *PHCLLIST;
  240.  
  241. //-------------------------------------------------------------------------
  242. // The function prototypes listed below are defined as follows:
  243. //
  244. // PFNRECCOMP - comparison function
  245. // Input:  PVOID - points to a record in the list.
  246. //         PVOID - points to application-defined data, usually passed
  247. //                 into the function which calls this function.
  248. // Returns:  -1 if the first record is "less than" the second, 0 if they are
  249. //           "equal", or 1 if the first record is "greater than" the second.
  250. //
  251. // PFNRECFUNC - record callback function
  252. // Input:  PVOID - points to a record in the list
  253. //
  254. // PFNRECMED - median finding function
  255. // Input:  HCLLIST - handle to the list to find the median for.
  256. // Output:  PVOID - points to a buffer of the same size as a
  257. //                  single record in the list and should be
  258. //                  initialized by the function to be the median
  259. //                  of the list.  This is passed later to pfnCompare
  260. //                  as the second parameter to find all elements
  261. //                  that are less than and greater than this record.
  262. // Returns:  TRUE if successful, FALSE otherwise.
  263. //-------------------------------------------------------------------------
  264. typedef SHORT (* EXPENTRY PFNRECCOMP)(PVOID,PVOID);
  265. typedef VOID (* EXPENTRY PFNRECFUNC)(PVOID);
  266. typedef BOOL (* EXPENTRY PFNRECMED)(HCLLIST,PVOID);
  267. #endif                           // #ifdef INCL_CMNLST
  268.  
  269. #ifdef INCL_CMNMEM
  270. //-------------------------------------------------------------------------
  271. // Memory allocation routines
  272. //-------------------------------------------------------------------------
  273.  
  274. typedef LONG MEMERROR;
  275.  
  276. #define MEM_ERR_NOERROR          (MEMERROR)0
  277. #define MEM_ERR_ERROR            (MEMERROR)-1
  278. #define MEM_ERR_BADHANDLE        (MEMERROR)1
  279. #define MEM_ERR_NOMEMORY         (MEMERROR)2
  280. #define MEM_ERR_SIZETOOLARGE     (MEMERROR)3
  281. #define MEM_ERR_BADPOINTER       (MEMERROR)4
  282.  
  283. typedef struct _CMMEMINFO {
  284.    USHORT usNumHeaps;
  285.    ULONG ulSzHeap;
  286.    ULONG ulMemUsed;
  287. } CMMEMINFO, FAR *PCMMEMINFO;
  288.  
  289. typedef LHANDLE HCMMEM;
  290. typedef HCMMEM FAR *PHCMMEM;
  291. #endif                           // #ifdef INCL_CMNMEM
  292.  
  293. #ifdef INCL_CMNOBJ
  294. //-------------------------------------------------------------------------
  295. // Object routines
  296. //-------------------------------------------------------------------------
  297.  
  298. typedef LHANDLE HCOOBJECT;
  299. typedef HCOOBJECT FAR *PHCOOBJECT;
  300.  
  301. #define MAX_OBJECTNAME           256
  302.  
  303. typedef struct _COOBJECTINFO {
  304.    HCOOBJECT hcoParent;
  305.    CHAR achName[MAX_OBJECTNAME+1];
  306.    ULONG ulSzData;
  307.    PVOID pvData;
  308.    USHORT usNumChildren;
  309.    ULONG ulReserved;
  310. } COOBJECTINFO, FAR *PCOOBJECTINFO;
  311.  
  312. typedef LONG OBJERROR;
  313.  
  314. #define OBJ_ERR_NOERROR          (OBJERROR)0
  315. #define OBJ_ERR_ERROR            (OBJERROR)-1
  316. #define OBJ_ERR_NOTIMPLEMENTED   (OBJERROR)-2
  317. #define OBJ_ERR_NOMEMORY         (OBJERROR)1
  318. #define OBJ_ERR_BADHANDLE        (OBJERROR)2
  319. #define OBJ_ERR_BADROOTHANDLE    (OBJERROR)3
  320. #define OBJ_ERR_SIZETOOLARGE     (OBJERROR)4
  321. #define OBJ_ERR_BADNAME          (OBJERROR)5
  322. #define OBJ_ERR_NOTROOT          (OBJERROR)6
  323. #define OBJ_ERR_BADARGUMENT      (OBJERROR)7
  324. #define OBJ_ERR_OBJECTCORRUPTED  (OBJERROR)8
  325. #define OBJ_ERR_INITFAILED       (OBJERROR)9
  326. #define OBJ_ERR_NOTFOUND         (OBJERROR)10
  327.  
  328. #define MAXDEPTH_UNLIMITED       (SHORT)-1
  329. #define MAX_SERVERNAME           256
  330.  
  331. typedef struct _COROOTINFO {
  332.    SHORT sMaxDepth;
  333.    CHAR achName[MAX_OBJECTNAME+1];
  334.    CHAR achServer[MAX_SERVERNAME+1];
  335. } COROOTINFO, FAR *PCOROOTINFO;
  336.  
  337. #define OQO_PARENT               (SHORT)-1
  338. #define OQO_FIRSTCHILD           (SHORT)-2
  339. #define OQO_PREVIOUS             (SHORT)-3
  340. #define OQO_NEXT                 (SHORT)-4
  341. #define OQO_ROOT                 (SHORT)-5
  342. #endif                           // #ifdef INCL_CMNOBJ
  343.  
  344. #ifdef INCL_CMNSET
  345. //-------------------------------------------------------------------------
  346. // Set routines
  347. //-------------------------------------------------------------------------
  348.  
  349. #define SFE_SET                  0
  350. #define SFE_CLEAR                1
  351.  
  352. #define SFE_NOTFOUND             -1
  353. #define SFE_ERROR                -2
  354.  
  355. #define SQE_ERROR                -1
  356. #define SQE_SET                  0
  357. #define SQE_CLEAR                1
  358.  
  359. #define SQES_ERROR               -1
  360. #define SQES_EQUAL               0
  361. #define SQES_NOTEQUAL            1
  362.  
  363. typedef LHANDLE HCSSET;
  364. typedef HCSSET FAR *PHCSSET;
  365.  
  366. typedef struct _CSSETINFO {
  367.    ULONG ulMaxElements;
  368.    ULONG ulElementsSet;
  369. } CSSETINFO, FAR *PCSSETINFO;
  370. #endif                           // #ifdef INCL_CMNSET
  371.  
  372. #ifdef INCL_CMNSIG
  373. //-------------------------------------------------------------------------
  374. // Signal routines
  375. //-------------------------------------------------------------------------
  376.  
  377. #define SWS_TIMEOUT_IMMEDIATE    0
  378. #define SWS_TIMEOUT_NEVER        -1
  379.  
  380. #define SWS_RC_ERROR             0
  381. #define SWS_RC_TIMEOUT           1
  382. #define SWS_RC_SIGNALSET         2
  383.  
  384. typedef LHANDLE HCSSIGNAL;
  385. typedef HCSSIGNAL FAR *PHCSSIGNAL;
  386.  
  387. typedef LHANDLE HCSSIGNALLIST;
  388. typedef HCSSIGNALLIST FAR *PHCSSIGNALLIST;
  389. #endif                           // #ifdef INCL_CMNSIG
  390.  
  391. #ifdef INCL_CMNSPR
  392. //-------------------------------------------------------------------------
  393. // Sprite routines
  394. //-------------------------------------------------------------------------
  395.  
  396. #define MAX_SPRITES              64
  397.  
  398. #define MAX_SPRITE_CX            128
  399. #define MAX_SPRITE_CY            128
  400.  
  401. typedef LONG SPRERROR;
  402.  
  403. #define SPR_ERR_NOERROR          0x00000000L
  404. #define SPR_ERR_ERROR            0xFFFFFFFFL
  405. #define SPR_ERR_BADHANDLE        0x00000001L
  406. #define SPR_ERR_BMPTOOLARGE      0x00000002L
  407. #define SPR_ERR_RESOURCE         0x00000003L
  408. #define SPR_ERR_NOMEMORY         0x00000004L
  409. #define SPR_ERR_HASPLAYGROUND    0x00000005L
  410. #define SPR_ERR_HASNOPLAYGROUND  0x00000006L
  411. #define SPR_ERR_PLAYGROUNDFULL   0x00000007L
  412. #define SPR_ERR_HASBACKGROUND    0x00000008L
  413.  
  414. typedef LHANDLE HCSSPRITE;
  415. typedef HCSSPRITE *PHCSSPRITE;
  416.  
  417. typedef LHANDLE HCSPLAYGROUND;
  418. typedef HCSPLAYGROUND *PHCSPLAYGROUND;
  419. #endif                           // #ifdef INCL_CMNSPR
  420.  
  421. #ifdef INCL_CMNSTR
  422. //-------------------------------------------------------------------------
  423. // String routines
  424. //-------------------------------------------------------------------------
  425.  
  426. #define SQWP_ERROR               -1
  427.  
  428. #define SCTN_TYPE_BYTE           0x0000
  429. #define SCTN_TYPE_SHORT          0x0001
  430. #define SCTN_TYPE_LONG           0x0002
  431. #define SCTN_TYPE_FLOAT          0x0003
  432. #define SCTN_TYPE_DOUBLE         0x0004
  433. #define SCTN_ATTR_DECIMAL        0x0000
  434. #define SCTN_ATTR_HEX            0x1000
  435.  
  436. #define SPL_ERR_ERROR            -1
  437.  
  438. #define SPL_TYPE_BYTE            0x0000
  439. #define SPL_TYPE_CHAR            0x0001
  440. #define SPL_TYPE_STRING          0x0002
  441. #define SPL_TYPE_SHORT           0x0003
  442. #define SPL_TYPE_LONG            0x0004
  443. #define SPL_TYPE_FLOAT           0x0005
  444. #define SPL_TYPE_DOUBLE          0x0006
  445. #define SPL_TYPE_RESERVED        0x000F
  446. #define SPL_ATTR_DECIMAL         0x0000
  447. #define SPL_ATTR_HEX             0x1000
  448.  
  449. #define SPL_NOTFOUND             0xFFFF
  450. #define SPL_FOUND                0xFFFE
  451.  
  452. typedef struct _CSLINEDESC {
  453.    USHORT usOffset;              // 0-based offset of the field within
  454.                                  // each line
  455.    USHORT usLength;              // Size of the field
  456.    USHORT usType;                // Field type (SPL_* constant)
  457. } CSLINEDESC, FAR *PCSLINEDESC;
  458.  
  459. #define SPCL_ERR_NOMEMORY        0
  460. #define SPCL_ERR_NOTENOUGHARGS   1
  461. #define SPCL_ERR_BADSWITCH       2
  462. #define SPCL_ERR_SWITCHERROR     3
  463.  
  464. typedef VOID (* EXPENTRY PFNCMDERR)(USHORT);
  465. typedef BOOL (* EXPENTRY PFNCMDARG)(USHORT,PCHAR *,USHORT);
  466.  
  467. #define SPCL_MAX_SWITCH          8
  468.  
  469. #define SPCL_FLG_CASESENSITIVE   0x0001
  470. #define SPCL_FLG_SUBSTRING       0x0002
  471. #define SPCL_FLG_ARGCONCAT       0x0004
  472.  
  473. typedef struct _CSCMDDESC {
  474.    USHORT usId;
  475.    CHAR achSwitch[SPCL_MAX_SWITCH+1];
  476.    USHORT usNumArgs;
  477.    USHORT usFlags;
  478.    PFNCMDARG pfnCallback;
  479. } CSCMDDESC, FAR *PCSCMDDESC;
  480.  
  481. #define SPS_LEFT                 (USHORT)1
  482. #define SPS_RIGHT                (USHORT)2
  483. #endif                           // #ifdef INCL_CMNSET
  484.  
  485. #ifdef INCL_CMNVIO
  486. //-------------------------------------------------------------------------
  487. // Screen I/O routines
  488. //-------------------------------------------------------------------------
  489. #define VGS_UNREADABLE           0x00000001
  490. #define VGS_REQUIRED             0x00000002
  491.  
  492. #endif                           // #ifdef INCL_CMNVIO
  493.  
  494. #ifdef INCL_CMNWIN
  495. //-------------------------------------------------------------------------
  496. // Windowing routines
  497. //-------------------------------------------------------------------------
  498. typedef struct _CWPOSITION {
  499.    ULONG ulSzStruct;
  500.    SWP swpPosition;              // Current size and position
  501.    USHORT ausExtra[6];           // Minimized position and restored size and
  502.                                  // position
  503. } CWPOSITION, FAR *PCWPOSITION;
  504. #endif                           // #ifdef INCL_CMNWIN
  505.  
  506. #pragma pack()
  507.  
  508. #endif                           // #ifndef CMNDEFS_INCLUDED
  509.